package cn.com.git.admin.service;

import cn.com.git.admin.service.dto.*;
import cn.com.git.admin.service.query.*;
import cn.com.git.common.model.ResultMsg;
import cn.com.git.common.model.ResultPage;

import javax.validation.constraints.NotNull;

/**
* 鉴权 API接口
* @author zhangzhenfu
* @Description
* @date 2020/5/8
*/
public interface UpmsService {

    /*=================================*/
    /*============ 鉴权 =============*/
    /*=================================*/
    ResultMsg<AuthenticationDTO> loginByPassword(String account,String password) ;

    /*=================================*/
    /*============ SysUser =============*/
    /*=================================*/
    ResultPage<SysUserListDTO> listSysUser(SysUserListQuery query);
    ResultMsg<SysUserDetailDTO> findSysUser(Integer id);
    ResultMsg<SysUserSaveDTO> addSysUser(SysUserSaveDTO saveDTO);
    ResultMsg<SysUserSaveDTO> editSysUser(SysUserSaveDTO saveDTO);
    ResultMsg deleteSysUser(Integer id);

    /*=================================*/
    /*============ SysUserResource =============*/
    /*=================================*/
    ResultPage<SysUserResourceListDTO> listSysUserResource(SysUserResourceListQuery query);

    /*=================================*/
    /*============ SysRole =============*/
    /*=================================*/
    ResultPage<SysRoleListDTO> listSysRole(SysRoleListQuery query);
    ResultMsg<SysRoleDetailDTO> findSysRole(Integer id);
    ResultMsg<SysRoleSaveDTO> addSysRole(SysRoleSaveDTO saveDTO);
    ResultMsg<SysRoleSaveDTO> editSysRole(SysRoleSaveDTO saveDTO);
    ResultMsg deleteSysRole(Integer id);

    /*=================================*/
    /*============ SysOrgan =============*/
    /*=================================*/
    ResultPage<SysOrganListDTO> listSysOrgan(SysOrganListQuery query);
    ResultMsg<SysOrganDetailDTO> findSysOrgan(Integer id);
    ResultMsg<SysOrganSaveDTO> addSysOrgan(SysOrganSaveDTO saveDTO);
    ResultMsg<SysOrganSaveDTO> editSysOrgan(SysOrganSaveDTO saveDTO);
    ResultMsg deleteSysOrgan(Integer id);

    /*=================================*/
    /*============ SysDepartment =============*/
    /*=================================*/
    ResultPage<SysDepartmentListDTO> listSysDepartment(SysDepartmentListQuery query);
    ResultMsg<SysDepartmentDetailDTO> findSysDepartment(Integer id);
    ResultMsg<SysDepartmentSaveDTO> addSysDepartment(SysDepartmentSaveDTO saveDTO);
    ResultMsg<SysDepartmentSaveDTO> editSysDepartment(SysDepartmentSaveDTO saveDTO);
    ResultMsg deleteSysDepartment(Integer id);
}
